package org.example.pcbcircuitboard.service;

import org.example.pcbcircuitboard.constants.StatusCode;
import org.example.pcbcircuitboard.constants.StatusData;
import org.example.pcbcircuitboard.dao.PCBMapper;
import org.example.pcbcircuitboard.pojo.CenterBottomPojo;
import org.example.pcbcircuitboard.pojo.DispositionPojo;
import org.example.pcbcircuitboard.pojo.LeftCenterPojo;
import org.example.pcbcircuitboard.pojo.NavigationPojo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 可视乎数据服务
 */
@Service
public class VisualizationDataService {
    @Autowired
    private PCBMapper pcbMapper;
    /**
     * 获取左中
     * @param productName 产品名称
     * @return 左中数据
     */
    public List<LeftCenterPojo>  getLeftCenterData(String productName) {
        return pcbMapper.getLeftCenterData(productName);
    }
    /**
     * 获取中下
     * @return 中下数据
     */
    public List<CenterBottomPojo> getCenterBottomData() {
        return pcbMapper.getCenterBottomData();
    }
    /**
     * 获取产品的所有PCB信息
     * @param productName 产品名称
     * @return 产品所有PCB信息
     */
    public List<DispositionPojo> getDispositionData(String productName) {
        return pcbMapper.getDispositionData(productName);
    }
    /**
     * 根据批次获取PCB信息
     * @param productName 产品名称
     * @param batch 批次
     * @return PCB信息
     */
    public List<DispositionPojo> getBatchDispositionData(String productName,String batch) {
        return pcbMapper.getBatchDispositionData(productName,batch);
    }
    /**
     * 根据日期获取PCB信息
     * @param productName 产品名称
     * @param date 日期
     * @return PCB信息
     */
    public List<DispositionPojo> getDateDispositionData(String productName,String date) {
        return pcbMapper.getDateDispositionData(productName,date);
    }
    /**
     * 根据日期、批次获取PCB信息
     * @param productName 产品名称
     * @param batch 批次
     * @param date 日期
     * @return PCB信息
     */
    public List<DispositionPojo>  getBatchDateDispositionData(String productName,String batch,String date) {
            return pcbMapper.getBatchDateDispositionData(productName,batch,date);

    }
    /**
     * 获取产品的批次名字
     * @param productName 产品名称
     * @return 批次名字
     */
    public List<DispositionPojo> getBatchNames(String productName) {
        return pcbMapper.getBatchNames(productName);
    }
    /**
     * 获取产品名字
     * @return 产品名字
     */
    public List<String> getProductNames() {
        return pcbMapper.getAllProductNames();
    }
    /**
     * 获取 判断是否重名产品
     * @param productName 产品名称
     * @return true 不重名 false 重名
     */
    public boolean isRepeatProduct(String productName) {
        return pcbMapper.isProductExist(productName)==0;
    }
    /**
     * 插入 新的产品名字
     * @param productName 产品名称
     * @return true 插入成功 false 插入失败
     */
    public boolean insertProduct(String productName) {
        return pcbMapper.insertNewProduct(productName)==1;
    }
    /**
     * 获取 导航栏数据
     */
    public NavigationPojo getNavigationData(String productName) {
        return pcbMapper.getNavigationData(productName);
    }
}
